Mô hình Thuật toán dòng dữ liệu

Trong mô hình dòng dữ liệu, dữ liệu vào được cung cấp dưới dạng một hay nhiều dãy các phần tử chỉ có thể đọc theo thứ tự định sẵn đúng một lần hoặc một vài lần.

Một phần đáng kể các nghiên cứu về dòng dữ liệu tập trung vào việc tính các số liệu thống kê về tần số các phần tử trong dòng dữ liệu khi tập hợp các tần số này là quá lớn không thể lưu trữ hết trong bộ nhớ. Ở đây dữ liệu vào có thể được mô hình bởi một vectơ a = ( a 1 , … , a n ) {\displaystyle \mathbf {a} =(a_{1},\dots ,a_{n})} ban đầu được khởi tạo bằng vectơ 0 {\displaystyle \mathbf {0} } , và dòng dữ liệu là một chuỗi các thay đổi của vectơ a {\displaystyle \mathbf {a} } . Mục tiêu của thuật toán là tính một số liệu thống kê về vectơ a {\displaystyle \mathbf {a} } bằng bộ nhớ nhỏ hơn rất nhiều bộ nhớ cần thiết để lưu trữ vectơ a {\displaystyle \mathbf {a} } . Có hai mô hình phổ biến là mô hình "máy tính tiền" và mô hình "cửa xoay".[4]

Trong mô hình máy tính tiền, mỗi lần thay đổi được xác định bởi một cặp số ⟨ i , c ⟩ {\displaystyle \langle i,c\rangle } , nghĩa là a i {\displaystyle a_{i}} được tăng lên c {\displaystyle c} đơn vị ( c {\displaystyle c} là số dương). Một trường hợp đặc biệt hay được xem xét là c = 1 {\displaystyle c=1} (chỉ được phép tăng lên 1).

Trong mô hình cửa xoay, mỗi lần thay đổi được xác định bởi một cặp số ⟨ i , c ⟩ {\displaystyle \langle i,c\rangle } , nghĩa là a i {\displaystyle a_{i}} được cộng thêm số nguyên (có thể âm hoặc dương) c {\displaystyle c} . Trong mô hình cửa xoay nghiêm ngặt, a i {\displaystyle a_{i}} luôn không âm tại mọi thời điểm.

Ngoài ra, một số bài báo nghiên cứu về mô hình "cửa sổ dịch chuyển". Trong mô hình này, hàm cần tính là hàm của một số lượng cố định các phần tử cuối cùng (gọi là cửa sổ) của dòng dữ liệu. Khi các phần tử mới xuất hiện trong dòng dữ liệu, chúng được thêm vào cửa sổ và các phần tử cũ nhất trong cửa sổ bị loại ra.

Bên cạnh các bài toán về tần số, nhiều bài toán khác cũng được xem xét trong mô hình dòng dữ liệu. Nhiều bài toán đồ thị có thể giải được trong mô hình này khi ma trận kề hoặc danh sách kề của đồ thị được cung cấp dưới dạng dòng dữ liệu theo một thứ tự bất kì. Cũng có những bài toán phụ thuộc vào thứ tự các phần tử trong dòng dữ liệu chẳng hạn như đếm số nghịch thế của một hoán vị hay tìm độ dài dãy con tăng dài nhất.

Tài liệu tham khảo

WikiPedia: Thuật toán dòng dữ liệu ftp://ftp.cs.rochester.edu/pub/papers/theory/05.tr... http://www.cs.mcgill.ca/~denis/notes09.pdf http://domino.research.ibm.com/comm/research_proje... http://www-01.ibm.com/software/data/infosphere/str... http://www.dagstuhl.de/de/program/calendar/semhp/?... http://www.cse.buffalo.edu/~atri/courses/data-stre... http://www.cs.dartmouth.edu/~ac/Teach/CS85-Fall09/ http://www.cc.gatech.edu/~jx/reprints/talks/sigm07... http://www.eecs.harvard.edu/~michaelm/postscripts/... http://groups.csail.mit.edu/cag/streamit/index.sht...